feat: Adding streamable-http transport support for backend, desktop and cli#2942
feat: Adding streamable-http transport support for backend, desktop and cli#2942jeremiah1066 merged 3 commits intoblock:mainfrom
Conversation
|
@baxen this could work - if we didn't migrate over to the rust-sdk for MCP |
@michaelneale @baxen - If it helps I can make some updates to this PR to ease that transition when the time comes! Perhaps an abstraction layer for the transport, config, etc w/ a feature flag? If you don't mind me asking, is there a plan to retain full backwards compatibility for users who currently have SSE as a distinct option, or would it be preferable to migrate and consolidate those who have sse config to streamable-http and use the native backwards compatibility? |
aab8126 to
097ef7d
Compare
… backwards compatibility
097ef7d to
8af43c7
Compare
|
Hey @alexhancock , looks like a linting error that may be unrelated to my changes. Just wanted to put it on your radar - let me know if there's anything I can do on my end! |
there was an issue like this a while ago, if you haven't recently merged in master, that might solve it |
Awesome, thanks @DOsinga - ran what I could in the ci workflow for both the crates and the ui on my local and all looks good (famous last words), all merged 🤞🏼 |
* main: feat: Structured output for recipes (#3188) Fix cost tracking accuracy and OpenRouter model pricing (#3189) docs: update cli install instructions for windows (#3205) Docs: Cost tracking on the desktop app (#3204) feat: Adding streamable-http transport support for backend, desktop and cli (#2942) fix: use the correct `contains` syntax on create-recipe-pr.yml (#3193)
* main: fix: Pass Google AI API key in HTTP header, not query param (block#3192) docs: add linter to CONTRIBUTING.md (block#3168) feat: Structured output for recipes (block#3188) Fix cost tracking accuracy and OpenRouter model pricing (block#3189) docs: update cli install instructions for windows (block#3205) Docs: Cost tracking on the desktop app (block#3204) feat: Adding streamable-http transport support for backend, desktop and cli (block#2942) fix: use the correct `contains` syntax on create-recipe-pr.yml (block#3193)
* main: (37 commits) fix: fix desktop recipe url generation (block#3209) feat: improve UX for saving recipes (block#3214) fix: Pass Google AI API key in HTTP header, not query param (block#3192) docs: add linter to CONTRIBUTING.md (block#3168) feat: Structured output for recipes (block#3188) Fix cost tracking accuracy and OpenRouter model pricing (block#3189) docs: update cli install instructions for windows (block#3205) Docs: Cost tracking on the desktop app (block#3204) feat: Adding streamable-http transport support for backend, desktop and cli (block#2942) fix: use the correct `contains` syntax on create-recipe-pr.yml (block#3193) Temporarily Remove GH Copilot Provider (block#3199) docs: fix tab navigation (block#3201) feat: use tiktoken-rs instead of tokenizers, single global tokenizer (block#3115) add playwright-mcp server to extensions list (block#3010) Add `/extension` path for extension installation (block#3011) feat(desktop): Prioritize suffix when truncating path in header (block#3110) chore(release): release version 1.0.31 (block#3185) feat: additional sub recipes via command line (block#3163) Add Internal Recipes To Recipes Cookbook (block#3179) pipe the argument to storage (block#3184) ...
* main: (150 commits) Defend against invalid sessions (block#3229) Clean up session file optionality for --no-session (block#3230) Feat: Support Recipe Parameters in Goose desktop app (block#3155) docs: update recipe example (block#3222) Add native OAuth 2.0 authentication support to MCP client (block#3213) build: Check in Cargo.lock changes (block#3220) fix: fix desktop recipe url generation (block#3209) feat: improve UX for saving recipes (block#3214) fix: Pass Google AI API key in HTTP header, not query param (block#3192) docs: add linter to CONTRIBUTING.md (block#3168) feat: Structured output for recipes (block#3188) Fix cost tracking accuracy and OpenRouter model pricing (block#3189) docs: update cli install instructions for windows (block#3205) Docs: Cost tracking on the desktop app (block#3204) feat: Adding streamable-http transport support for backend, desktop and cli (block#2942) fix: use the correct `contains` syntax on create-recipe-pr.yml (block#3193) Temporarily Remove GH Copilot Provider (block#3199) docs: fix tab navigation (block#3201) feat: use tiktoken-rs instead of tokenizers, single global tokenizer (block#3115) add playwright-mcp server to extensions list (block#3010) ...
…nd cli (block#2942) Signed-off-by: Adam Tarantino <tarantino.adam@gmail.com>
…nd cli (block#2942) Signed-off-by: Soroosh <soroosh.sarabadani@gmail.com>
Motivation
MCP is officially adopting streamable-https for client-to-server comms with optional sse for server-to-client comms.
Backend
This change provides support for streamable-http as a distinct transport option in the backend. The new transport provides support for optional sse server-to-client communication for backwards compatibility, but retains the legacy SSE transport type so as not to impact users who currently have configurations using this transport.
This will allow for a cleaner, easier deprecation of the sse transport option in later releases.
Desktop
Adds support for streamable-http as a custom connection with the ability to add and modify custom headers. Retains SSE for legacy support purposes.
CLI
Automatically detects streamable-http vs sse when using the
--with-remote-extensionflag